package com.ns.basic.log.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 返回实体
 *
 * @author liaowei
 */
@Data
@ToString
@Accessors(chain = true)
public class ApiLogVO {
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 接口名称
     */
    private String name;

    /**
     * 客户端ip
     */
    private String ip;

    /**
     * 请求api
     */
    private String api;

    /**
     * 请求参数
     */
    private String param;

    /**
     * 请求方式
     */
    private String type;

    /**
     * 请求token
     */
    private String token;

    /**
     * 请求header
     */
    private String header;


    /**
     * 返回-状态码
     */
    private Long resCode;

    /**
     * 返回-信息描述
     */
    private String resMsg;

    /**
     * 返回-整个信息字符串形式
     */
    private String resStr;


    /**
     * user_id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /**
     * 请求开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 请求结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
     * 花费时间，单位ms
     */
    private Long costTime;
}
